/* @(#)DecKanGlDecoratorCanvasZone.java
** 
** Copyright (C) 2001-2011 by Steven D. Stamps
**
**             Trademarks & Copyrights
** Flywheel Management Science(TM) and FlywheelMS(TM) are exclusive
** trademarks of Steven D. Stamps and may only be used freely for
** the purpose of identifying the unforked version of this software.
** Subsequent forks (if any) may not use these trademarks.  All other
** rights are reserved.
**
** DecKanGL (Decorated Kanban Glyph Language) and TribKn (Tribal Knowledge)
** are also exclusive trademarks of Steven D. Stamps.  These may be used
** freely within the unforked FlywheelMS application and documentation.
** All other rights are reserved.
**
** Trademark information is available at
** <http://www.flywheelms.org/trademarks>
**
** Flywheel Management Science(TM) is a copyrighted body of management
** metaphors, governance processes, and leadership techniques that is
** owned by Steven D. Stamps.  These copyrighted materials may be freely
** used, without alteration, by the community (users and developers)
** surrounding this GPL3-licensed software.  Additional copyright
** information is available at <http://www.flywheelms.org/copyrights>
**
**              GPL3 Software License
** This program is free software: you can use it, redistribute it and/or
** modify it under the terms of the GNU General Public License, version 3,
** as published by the Free Software Foundation. This program is distributed
** in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
** even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
** PURPOSE.  See the GNU General Public License for more details. You should
** have received a copy of the GNU General Public License, in a file named
** COPYING, along with this program.  If you cannot find your copy, see
** <http://www.gnu.org/licenses/gpl-3.0.html>.
*/
package com.fmscorp.deckangl.core;

/**
 * @author sstamps
 */
public enum DecKanGlDecoratorCanvasZone {
	
	/* There are 10 possible decorator locations in a DecKanGL Glyph.
	 * Many applications do not utilize all decorator locations.
	 */
	LEFT_ZONE(
			"Left Zone",
			CanvasSizingConstraint.VERTICAL,
			DecKanGlGlyphDictionary.getInstance().getWidthLeftZone(),
			DecKanGlGlyphDictionary.getInstance().getHeightLeftZone() ),
	RIGHT_ZONE(
			"Right Zone",
			CanvasSizingConstraint.VERTICAL,
			DecKanGlGlyphDictionary.getInstance().getWidthRightZone(),
			DecKanGlGlyphDictionary.getInstance().getHeightRightZone() ),
	TOP_ZONE(
			"Top Zone",
			CanvasSizingConstraint.HORIZONTAL,
			DecKanGlGlyphDictionary.getInstance().getWidthTopZone(),
			DecKanGlGlyphDictionary.getInstance().getHeightTopZone() ),
	BOTTOM_ZONE(
			"Bottom Zone",
			CanvasSizingConstraint.HORIZONTAL,
			DecKanGlGlyphDictionary.getInstance().getWidthBottomZone(),
			DecKanGlGlyphDictionary.getInstance().getHeightBottomZone() );
	
	private String name = null;
	private CanvasSizingConstraint canvasSizingConstraint;
	private int zoneWidth;
	private int zoneHeight;
	
	private DecKanGlDecoratorCanvasZone(
			String aName,
			CanvasSizingConstraint aCanvasSizingConstraint,
			int aZoneWidth,
			int aZoneHeight ) {
		this.name = aName;
		this.canvasSizingConstraint = aCanvasSizingConstraint;
		this.zoneWidth = aZoneWidth;
		this.zoneHeight = aZoneHeight;
	}
	
	public String toString() {
		return this.name;
	}
	
	public String getName() {
		return this.name;
	}
	
	public CanvasSizingConstraint getCanvasSizingConstraint() {
		return this.canvasSizingConstraint;
	}

	public int getWidth() {
		return this.zoneWidth;
	}
	
	public void setWidth(int aWidth) {
		this.zoneWidth = aWidth;
	}

	public int getHeight() {
		return this.zoneHeight;
	}
	
	public void setHeight(int aHeight) {
		this.zoneHeight = aHeight;
	}
	
}